//群发相关操作
const config=require('./config')
const Wechat=require('./vchat').Wechat
const prefix='https://api.weixin.qq.com/cgi-bin/';
const api={
    tagMass:prefix+'message/mass/sendall?', //按标签群发
    //群发视频与其他不同，需要将永久素材上传视频media_id上传以下接口换取内容
    uploadVideo:prefix+'media/uploadvideo?',
    //按用户openId群发（订阅号不能用），操作跟标签群发几乎一样，就指定组不一样
    openIdMass:prefix+'message/mass/send?',
    //删除群发（撤回群发），注意！会删除掉以前发的同一个media_id消息。
    //只有已经发送成功的消息才能删除
    //删除群发消息只能删除图文消息和视频消息，其他类型的消息一经发送，无法删除。
    delMass:prefix+'message/mass/delete?',
    testMass:prefix+'message/mass/preview?', //测试预览群发效果
    massStatus:prefix+'message/mass/get?', //在群发用户量大时，获取查看群发状态，看群发过滤和失败的用户
    getMassSpeed:prefix+'message/mass/speed/get?', //获取当前群发速度
    setMassSpeed:prefix+'message/mass/speed/set?' //设置群发速度
}

let chat=new Wechat(config.wechat)
exports.mass={
    massOpt:async (dataType,msgData) => {
        let url=''
        let postData=null
        switch(dataType){
            case 'massNew':
                // url=api.tagMass;  //报错48008是没有权限，可能是测试号也不能使用接口，要认证
                // postData={
                //     "filter":{
                //         //默认关闭群发所有人，采用下面指定组群发。如true开启则下面指定组失效
                //         "is_to_all":false,
                //         "tag_id":msgData.tagId  //采用组指定标签id组群发
                //     },
                //     "mpnews":{
                //         // "media_id":msg.mediaId
                //         "media_id":"b4vZdtElHrFMIPy8N2ezJZgH5lKJhz3jSU5hHHfEu6w"
                //     },
                //     "msgtype":"mpnews",  //群发图文消息类型
                //     "send_ignore_reprint":0  //判定为转载时，是否继续群发，1代表继续群发
                //     //下句是如有此属性则不允许重发指定的msgId,msgId在群发一条消息后可以获取
                //     //"clientmsgid":"msgId"
                // }
                url=api.openIdMass;
                postData={
                    "touser":[
                        "o8cxctxSO-c-3YvpyP5mzybrC368", //必须2个以上id否则报错40130
                        "o8cxctxSO-c-3YvpyP5mzybrC369"
                    ],
                    "mpnews":{
                        "media_id":"b4vZdtElHrFMIPy8N2ezJZgH5lKJhz3jSU5hHHfEu6w"
                    },
                    "msgtype":"mpnews",
                    "send_ignore_reprint":0
                }
                break;
            case 'massImg':
                url=api.tagMass;
                break;

        }
        console.log(postData);
        return chat.getAcc().then(data=>{
            url+=`access_token=${data.access_token}`;
            return chat.getBody({url:url,method:'POST',body:postData,json:true})
        })
    }
}
